<?php
declare (strict_types = 1);

namespace app\validate;

use think\Validate;

class TestValidate extends Validate
{
    // 验证字段描述
    protected $field = [
        'username'  => '用户名',
        'user_id'   => 'UID',
        'email'     => '邮箱',
        'amount'    => '数量',
    ];

    /**
     * 定义验证规则
     * 格式：'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'username'  => 'require|alpha',
        'user_id'   => 'require|integer|my_rule',// 自定义验证规则
        'email'     => 'require|email',
        'amount'    => 'require|float|gt:0'
    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [
        'username.require'  => ':attribute 不能为空',
        'username.alpha'    => ':attribute 必须为字母',
        'user_id.require'   => ':attribute 不能为空',
        'user_id.integer'   => ':attribute 必须为整数',
        'user_id.my_rule'   => ':attribute 必须大于零',// 自定义验证规则
        'email.require'     => ':attribute 不能为空',
        'email.email'       => ':attribute 格式错误',
        'amount.require'    => ':attribute 不能为空',
        'amount.float'      => ':attribute 必须为浮点数',
        'amount.gt'         => ':attribute 必须大于零',
    ];

    // 自定义验证规则
    protected function my_rule($value)
    {
        return $value > 0;
    }
}
